/*
 * 
 * @author: huangww
 * @Date: 2021-02-23 09:42:34
 * @LastEditTime: 2021-03-01 14:40:38
 * @FilePath: \fmgr\src\core\logic\DataLogic.ts
 */
namespace core {
    /**
     * 辅助DataMgr 进行一些相关代码处理，一般会和项目耦合
     */
    export class DataLogic {
        private _list: Array<DataBase>;
        constructor() {
            this._list = [];
            /**数据模型初始化 */
            this._list.push(
                new CommonData(),
                new PlayerData(),
            );
        }

        getData(msg: Msg, waiting = false) {

        }

        setData(msg: Msg) {
            let data = this.getMode(msg.mode);
            if (data) {
                data.updateData(msg);
            }

        }

        check(msg: Msg, waiting = false) {
            if (!waiting) {
                let data = this.getMode(msg.mode);
                if (data) {
                    data.check(msg);
                }
            }
            MSGMgr.getInstance().sendSocket(msg);
        }

        post(url, params, msg: Msg, waiting = false) {
            if (!waiting) {
                let data = this.getMode(msg.mode);
                if (data) {
                    data.check(msg);
                }
            }
            MSGMgr.getInstance().sendHttp(url, params, msg);
        }

        private getMode(mode: number): DataBase {
            for (let i of this._list) {
                if (i.type === mode) {
                    return i;
                }
            }
            return null;
        }

    }
}